Enterprise software systems are typically sophisticated, large-scale systems that support many, e.g., hundreds or thousands, of concurrent users. Examples of enterprise software systems include enterprise performance management systems, financial planning systems, budget planning systems, order management systems, inventory management systems, sales force management systems, business intelligence tools, enterprise reporting tools, project and resource management systems and other enterprise software systems.
Many enterprise performance management and business planning applications require a large base of users to enter data that the software then accumulates into higher level areas of responsibility in the organization. Moreover, once data has been entered, the data must be retrieved to be utilized. The system performs mathematical calculations on the data, combining data submitted by one user with data submitted by another. Using the results of these calculations, the system generates reports for review by higher management. Often these complex systems make use of multidimensional data sources that organize and manipulate the tremendous volume of data using data structures referred to as data cubes. Each data cube includes a plurality of hierarchical dimensions having levels and members for storing multidimensional data.
One example of a storage facility for multidimensional data is the SAP® Business Information Warehouse (“SAP BW”) provided by SAP, Inc. of Walldorf, Germany. SAP BW provides database tools and databases to clients that allow the clients to store, extract, query, and manipulate data. SAP BW stores multidimensional data in data structures known as “InfoCubes.” Open Analysis Interfaces are typically used to extract multidimensional data from the InfoCubes. SAP BW supports three Open Analysis Interfaces: the Object Linking and Embedding Database (“OLE DB”) for Online Analytic Processing (“OLAP”), the OLAP Business Application Programming Interface (“BAPI”), and the Extensible Markup Language (“XML”) for Analysis (“XMLA”). In addition, SAP also provides the Business Explorer (“BEX”) interface for querying the OLAP processor of the SAP BW system.
Each of OLE DB, OLAP BAPI, and XMLA generate Multidimensional Expression (“MDX”) queries. In general, MDX is a language for querying multidimensional data stored in multidimensional databases. Each query from a user through the Open Analysis Interfaces, likewise, is an MDX query, each of which must be processed by an MDX processor. Similarly, the BEX interface interacts with the OLAP processor to output the results of complex multidimensional queries. Therefore, as the number of concurrent users increases, frequent round-trips of data and the limitations of the SAP BW for handling a high volume of MDX and BEX-OLAP queries presents scalability and performance issues. Similarly, Open Analysis Interfaces and BEX may be somewhat limited with respect to the ability to transfer large quantities of data.